/**
 * @Auther: ZZX
 * @Date: 2024/7/22-07-22-22:14
 * @Description: PACKAGE_NAME
 */
public class Demo7float与double的区别 {
    public static void main(String[] args) {
        float a = 10;
        float b = 3;
        double c =10;
        double d = 3;
        float sum = a/b;
        System.out.println(sum); //3.3333333
        double sum2 = a/b;
        System.out.println(sum2); //3.3333332538604736
        /*
        在这里因为a和b是float类型，将它们相除的结果赋值给double类型的sum2。
        在这个过程中，计算结果首先以float的精度进行计算，然后被提升为double类型。
        提升过程中，float值被转换为double值，但由于原始计算是在float精度上进行的，所以转换后的值已经包含了float计算的精度误差。
        因此，sum2的值是3.3333332538604736，这反映了float计算的原始误差。
         */
        double sum3 = c/d;
        System.out.println(sum3); //3.3333333333333335

        float x = 3.55f;
        float y = 2.12f;
        float sub = x-y;
        System.out.println(sub); //1.4300001 出现了精度损失
    }
}
